import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:seedfour/app/theme.dart';
import 'package:uuid/uuid.dart';

final double kSpaceTiny = 4.w;
final double kSpaceMini = 8.w;
final double kSpaceSmall = 12.w;
final double kSpaceMedium = 16.w;
final double kSpaceLarge = 24.w;
final double kSpaceBig = 32.w;
final double kSpaceHuge = 48.w;

final double kIconSizeTiny = 20.w;
final double kIconSizeMini = 24.w;
final double kIconSizeSmall = 28.w;
final double kIconSizeMedium = 36.w;
final double kIconSizeLarge = 48.w;

const String kKeyToken = 'token';
const String kKeyOrgId = 'orgId';
const String kKeyUser = 'user';
const String kKeyMessageReadTag = 'message-';
const String kKeyNoticeReadTag = 'notice-';
const String kKeyPrivacyAgreed = 'privacyAgreed';

final double kRadiusMini = 4.w;
final double kRadiusSmall = 8.w;
final double kRadiusMedium = 10.w;

final double kFontSizeTiny = 11.sp;
final double kFontSizeMini = 13.sp;
final double kFontSizeSmall = 15.sp;
final double kFontSizeMedium = 16.sp;
final double kFontSizeLarge = 18.sp;
final double kFontSizeBig = 25.sp;
final double kFontSizeHuge = 36.sp;

const String kUuidNameSpace = 'www.seedfour.com';

String kUUid = const Uuid().v5(Uuid.NAMESPACE_URL, 'www.seedfour.com');

const int dayInMilliseconds = 24 * 60 * 60 * 1000;

class BusinessType {
  static String taxi = '1';
  static String takeOut = '2';
  static String airTicket = '3';
  static String trainTicket = '4';
  static String hotel = '5';
  static String pay = '6';
  static String jd = '8';
  static String discount = '9';
}

final Map<String, String> caseStatus = {
  'init': '待提交申请',
  'apply': '利冲审批中',
  'audit': '通过利冲审批',
  'complete': '已结案',
  'invalid': '已作废',
  'settling': '待结案审批',
};

final Map<String, Color> caseStatusColors = {
  'init': AppColor.colorFontOrange,
  'apply': AppColor.colorFontOrange,
  'audit': AppColor.colorFontGreen,
  'complete': AppColor.colorFontGreen,
  'invalid': AppColor.colorFontRed,
  'settling': AppColor.colorFontOrange,
};

final Map<int, String> approveType = {
  1: '利冲审批',
  2: '结案审批',
  3: '用印审批',
  4: '用印处理',
};

final Map<int, String> approveStatus = {
  0: '审批中',
  1: '审批通过',
  2: '审批拒绝',
};

final Map<int, String> sealStatus = {
  1: '处理完成',
  2: '已作废',
};

final Map<int, String> sealApplyStatus = {
  0: '待提交申请',
  1: '审批中',
  2: '审批通过，未处理',
  3: '处理完成',
  4: '已作废',
  5: '合同已返回',
};

final Map<int, String> sealType = {
  0: '公章',
  1: '合同章',
};

final Map<int, String> incomeOrderStatus = {
  -1: '全部',
  0: '未到账',
  1: '已到账',
};

final Map<int, (String, Color)> noticeStatus = {
  0: ('未领取', Colors.orange),
  1: ('已领取', Colors.green),
  2: ('已成交', Colors.green),
};

final Map<String, String> noticeIndex = {
  'pub': '全部',
  'me': '我发布的',
};

final Map<int, String> fileTypes = {
  -1: '全部',
  11: '所有文件盘文件',
  1: '所有案件文件',
  10: '所有用印附件',
  8: '案件-合同文件',
  2: '案件-结案文件',
  9: '案件-归类资料',
  101: '用印-所函 -- 业务类',
  102: '用印-介绍信 -- 业务类',
  103: '用印-律师函 -- 业务类',
  104: '用印-法律意见书 -- 业务类',
  105: '用印-尽职调查报告 -- 业务类',
  106: '用印-其他成果性文件 -- 业务类',
  107: '用印-合同 -- 业务类',
  108: '用印-投标文件 -- 业务类',
  109: '用印-保密协议 -- 业务类',
  1010: '用印-其他文件 -- 业务类',
  1011: '用印-劳动合同 -- 非业务类',
  1012: '用印-合作协议 -- 非业务类',
  1013: '用印-实习协议 -- 非业务类',
  1014: '用印-介绍信 -- 非业务类',
  1015: '用印-三清证明 -- 非业务类',
  1016: '用印-离职证明 -- 非业务类',
  1017: '用印-收入证明 -- 非业务类',
  1018: '用印-其他证明 -- 非业务类',
};

final Map<int, (String, String)> fundRecordTypeMap = {
  1: ('平台消费', '-'),
  2: ('打款', '-'),
  3: ('手工扣款', '-'),
  4: ('提现', '-'),
  5: ('提现', '-'),
  6: ('转出', '-'),
  7: ('转入', '+'),
  8: ('提成转入', '+'),
  9: ('押金解冻', '+'),
  10: ('邀请提成转入', '+'),
  11: ('消费退款转入', '+'),
  12: ('手工充值', '+'),
  51: ('提现修改', ''),
  0: ('收款转入', '+'), // 默认类型
};

enum SealPaperType {
  all('全部', 0),
  // 律所函书
  lawFirmLetter('所函 -- 业务类', 1),
  letter('介绍信 -- 业务类', 2),
  lawyer('律师函 -- 业务类', 3),
  //法律意见书
  legalOpinion('法律意见书 -- 业务类', 4),
  // 尽职调查报告
  dueDiligenceReport('尽职调查报告 -- 业务类', 5),
  // 其他成果性文件
  otherResults('其他成果性文件 -- 业务类', 6),
  // 合同
  contract('合同 -- 业务类', 7),
  // 投标文件
  tenderDocument('投标文件 -- 业务类', 8),
  // 保密协议
  confidentialityAgreement('保密协议 -- 业务类', 9),
  // 其他文件
  otherDocuments('其他文件 -- 业务类', 10),
  // 劳动合同
  laborContract('劳动合同 -- 非业务类', 11),
  // 合作协议
  cooperationAgreement('合作协议 -- 非业务类', 12),
  // 实习协议
  internshipAgreement('实习协议 -- 非业务类', 13),
  // 介绍信
  introductionLetter('介绍信 -- 非业务类', 14),
  // 三清证明
  threeClearanceCertificate('三清证明 -- 非业务类', 15),
  // 离职证明
  departureCertificate('离职证明 -- 非业务类', 16),
  // 收入证明
  incomeCertificate('收入证明 -- 非业务类', 17),
  // 其他证明
  otherCertificate('其他证明 -- 非业务类', 18);

  const SealPaperType(this.label, this.value);

  final String label;
  final int value;
}
